package com.lecyon.farm.util;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;

/**
 * @author Yao Zheng
 * @Date 2019/10/23 15:33
 */
public class DateTimeUtils {

    /**
     * 将LocalDate 转换为 LocalDateTime
     *
     * @param localDate
     * @return
     */
    public static LocalDateTime convertLocalDate2LocalDateTime(LocalDate localDate) {
        long timestamp;
        LocalDateTime localDateTime = null;
        if (ValidateUtils.isNotNullOrEmpty(localDate)) {
            timestamp = localDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant().toEpochMilli();
            localDateTime = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
        }
        return localDateTime;
    }

    /**
     * 将LocalDateTime 转换为 LocalDate
     *
     * @param localDateTime
     * @return
     */
    public static LocalDate convertLocalDateTime2LocalDate(LocalDateTime localDateTime) {
        long timestamp;
        LocalDate localDate = null;
        if (ValidateUtils.isNotNullOrEmpty(localDateTime)) {
            timestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
            localDate = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDate();
        }
        return localDate;
    }

}
